PhpUnit 模拟 : function undefined
全部标签 Guzzle6文档提供了一种简单的方法来模拟HTTP调用,以便每个请求返回一个特定的响应:http://docs.guzzlephp.org/en/latest/testing.html#mock-handler但是,正如文档中所述,MockHandler定义了一个响应队列,无论URL是什么,每个请求都会以相同的顺序发送。如何告诉Guzzle在每次调用时为给定的URL发送特定的响应?例如,我想要这个电话:$client->request('GET','/products')->getBody();不是发出实际请求而是总是返回:{'products'=>[{id:1,name:'Prod
我正在为sonata/exporter做贡献,一个用于以多种格式(CSV、JSON、XML、XLS等)导出数据的库。我致力于通过封装另一个Writer(如CsvWriter或XlsWriter)将bool值转换为字符串(例如yes/no)的Writer。这是我第一次使用phpunit。对现有Writer进行的所有单元测试都使用此逻辑:-创建一个文件。-使用相应的格式将数据写入文件。-在file_get_contents(filename)上创建一个assertEquals。所以,我写了这个测试:publicfunctionsetUp(){$this->filename='formate
我怀疑我的问题的“最佳”答案是使用依赖注入(inject)并完全避免该问题。不幸的是我没有那个选项...我需要为一个导致第三方库被实例化的类编写测试。我想模拟/stub库类,这样它就不会进行实时API调用。我在CakePHPv3.x框架中使用phpunit。我能够模拟库并创建stub响应,但这并不能阻止“真实”类被我的测试之外的代码实例化。我考虑过尝试模拟实例化上游的类,但是它们很多,这会使测试编写/维护起来非常笨拙。有没有办法以某种方式“stub”类的实例化?类似于我们可以告诉php单元期待API调用并预设返回数据的方式? 最佳答案
我以前从未编写过测试用例,现在正尝试为我编写的API编写测试用例。我正在尝试使用post请求调用路由,因此我使用了以下内容:publicfunctiontestRequestCorrectApiKey(){//RequestwithX-AuthorizationsendingcorrectAPIKey$response=$this->call('POST','/authenticate',['email'=>'testingphpunit@phpunittest.com','password'=>'phpunittest',[],[],['X-Authorization'=>'123w
当我单独运行$phpunit时,它默默地失败了,这就是我试图知道问题所在但没有运气:$phpunit$echo$?=>255$php-i|grep错误display_errors=>STDOUT=>STDOUTdisplay_startup_errors=>On=>Onerror_append_string=>novalue=>novalueerror_log=>/usr/local/var/log/php_error.log=>/usr/local/var/log/php_error.logerror_prepend_string=>novalue=>novalueerror_r
我有PHPUnit的登录功能,并使用它作为测试用户进行授权。privatefunctionlogIn(Client$client){$session=$client->getContainer()->get('session');/**@varUser$user*/$user=$client->getContainer()->get('doctrine')->getRepository('DWDAdminBundle:User')->find(1);//HereIhaveuserobject$firewall='main';$token=newUsernamePasswordToken
我刚刚开始使用PHPUnit。到目前为止,除了DataProvider问题外,一切都很完美。问题是当我运行测试时,它通过了。但是,如果我再次运行它,它会失败并出现以下错误:ArgumentCountError:ToofewargumentstofunctionValidationTest::testValidateType(),0passedandatleast3expected如果我对数据提供程序函数进行任何更改(即更改要返回的数据、提供程序函数名称等)并重新运行,它会通过一次并失败,并在所有连续测试运行中出现上述错误。我使用的是最新版本的PHPUnit(一小时前更新)。不幸的是,我
我在codeigniter上运行phpunittest,我有一个包含这段代码的admin_test.php文件。classAdmin_testextendsPHPUnit_Framework_TestCase{private$CI;publicfunction__construct(){//createinstancevariable$this->CI=&get_instance();}publicfunctiontestRenderReturnsHelloWorld(){$this->CI->load->controller('admin');$data=$this->admin->
我开始尝试使用PHPUnit测试我的Doctrine对象,并且希望每次都从我的模型对象重新加载数据库。我的第一次尝试看起来像这样:classTests_UserextendsPHPUnit_Framework_TestCase{publicfunctionsetUp(){Doctrine_Manager::connection('mysql://user:pass@localhost/testdb');Doctrine::createDatabases();Doctrine::createTablesFromModels('../../application/models');}pub
我正在测试我网站的身份验证功能。Zend_Auth用作授权引擎。但是授权状态在测试之间仍然存在,我需要在每次拆解中都写上“注销”。现在一切正常。但是问题接踵而至。至于我知道Zend_Auth使用Zend_Session来存储授权数据。因此,session对于所有测试都是通用的。恐怕以后会出问题。您能告诉我为每个测试单独设置session的最佳做法是什么吗?现在我可以想象只能在setUp中手动启动session并在tearDown中停止。但我有很多测试,实现它可能会花费很多时间。 最佳答案 PHPUnit让您能够defineashar